Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Дерева. Бінарні дерева. Пошук

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Інформаційні системи та мережі

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Алгоритми і структури даних
Група:
КН

Частина тексту файла

Міністерство освіти і науки України Національний університет "Львівська політехніка" Кафедра "Інформаційні системи та мережі"    Лабораторна робота № 7 з предмету: Алгоритми і структури даних на тему: Дерева. Бінарні дерева. Пошук          ЛЬВІВ-2008  Тема: Дерева. Бінарні дерева. Пошук. Мета роботи: Набуття навичок програмування дерев. Постановка завдання: Розробити засоби динамічного збереження дерев та виконання дій над ними згідно варіанту Варіант індивідуального завдання: Перевірити, чи двійкове дерево є збалансованим. Текст програми на мові С++: #include <stdio.h> #include <stdlib.h> #include <conio.h> struct minmax{ int min, max; }; class btree { public: int val; btree *left, *right; public: btree(int nval=0) { val=nval; left=NULL; right=NULL; } void show(int level=0) { if(level==0)printf("{\n"); for(int i=0; i<level; i++) putch(' '); printf("%d\n", val); if(left)left->show(level+1); if(right)right->show(level+1); if(level==0)printf("}\n"); } ~btree() { if(left) delete left; if(right) delete right; } }; btree *form(int level) { if(level==0)return NULL; btree *temp=new btree(random(50)); if(random(10)!=0)temp->left=form(level-1); if(random(10)!=0)temp->right=form(level-1); return temp; } struct minmax getminmax(btree *bt) { struct minmax m, m1={0, 0}, m2={0, 0}; if(bt->left) m1=getminmax(bt->left); if(bt->right) m2=getminmax(bt->right); m.min=(m1.min<m2.min)?m1.min:m2.min; m.max=(m1.max>m2.max)?m1.max:m2.max; m.min++; m.max++; return m; } int isbalanced(btree *bt) { struct minmax m=getminmax(bt); return (m.max-m.min<=1); } int main() { btree *bt; randomize(); clrscr(); puts("Forming binary tree:"); bt=form(3); bt->show(); printf("The binary tree is %s\n", isbalanced(bt)?"balanced" :"not balansed"); struct minmax m=getminmax(bt); printf("min=%d max=%d\n", m.min, m.max); getch(); return 0; } Результати компютерної реалізації програми: Нижче наведено скріншот роботи програми:  Висновки Під час виконання роботи я закріпив практичні навички роботи з рекурсивними функціями.
Антиботан аватар за замовчуванням

30.11.2012 00:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини